﻿using Super_Management_Mayhem.Content.Spritesheet;
using Transformable_Engine_v2.Engine.Animation.FrameAnimation;

namespace Super_Management_Mayhem.Content.Animations
{
    public class WarpAnimation : FrameAnimationDescription
    {
         public WarpAnimation()
         {
             IsLooping = true;
             AddFrame(0, new FrameDescription(ItemSheet.GetSprite(ItemSheet.Warp.Warp1), 1));
             AddFrame(1, new FrameDescription(ItemSheet.GetSprite(ItemSheet.Warp.Warp2), 2));
             AddFrame(2, new FrameDescription(ItemSheet.GetSprite(ItemSheet.Warp.Warp0), 0));
             FrameRate = 15;
         }
    }

    public class WarpTargetAnimation : FrameAnimationDescription
    {
        public WarpTargetAnimation()
        {
            IsLooping = true;
            AddFrame(0, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpTarget.Target1), 1));
            AddFrame(1, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpTarget.Target0), 0));
            FrameRate = 5;
        }
    }

    public class WarpStar : FrameAnimationDescription
    {
        public WarpStar()
        {
            IsLooping = true;
            AddFrame(0, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpStar.Star1), 1));
            AddFrame(1, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpStar.Star2), 2));
            AddFrame(2, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpStar.Star3), 3));
            AddFrame(3, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpStar.Star4), 4));
            AddFrame(4, new FrameDescription(ItemSheet.GetSprite(ItemSheet.WarpStar.Star0), 0));
            FrameRate = 10;
        }
    }

    public class PlayerWarp : FrameAnimationDescription
    {
        public PlayerWarp()
        {
            IsLooping = false;
            AddFrame(0, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp0), 1));
            AddFrame(1, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp1), 2));
            AddFrame(2, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp2), 3));
            AddFrame(3, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp3), 4));
            AddFrame(4, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp4), 5));
            AddFrame(5, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp5), 6));
            AddFrame(6, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp6), 7));
            AddFrame(7, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp7), 8));
            AddFrame(8, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp8), 9));
            AddFrame(9, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp9), 10));
            AddFrame(10, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp10), 11));
            AddFrame(11, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp11), 12));
            AddFrame(12, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp12), 13));
            AddFrame(13, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp13), 14));
            AddFrame(14, new FrameDescription(ItemSheet.GetSprite(ItemSheet.PlayerWarp.Warp14), 15) { IsLastFrame = true });
            FrameRate = 20;
        }
    }
}